package org.pf.interfaces
{
	import flash.display.Sprite;
	import org.farmcode.bezier.Path;
	import org.pf.base.pfBlocks.PFLevel;
	import org.pf.base.pfStorages.PFStorageBodySprites;
	import org.pf.base.pfStorages.PFStorageImages;
	import org.pf.constructor.staff.PFBodyGeometry;
	import org.pf.semaphore.PFCommonSemaphore;
	
	/**
	 * ...
	 * @author zeksa'
	 */
	
	/**
	 * IPFCache interface implemented by PFCache objects.
	 * PFCache objects store information about current level/state,
	 * such as lists of bodies, sprites, etc.
	 */
	public interface IPFCache extends IPFBlock
	{
		function getLevel(levelName:String):PFLevel
		function setCurrentLevel(lev:PFLevel):void
		function get_sprite(bodyGeom:PFBodyGeometry):Sprite
		function getImage(imgName:String):Sprite
		function get levelsList():Array
		function get sprites():PFStorageBodySprites
		function get ropes():Array
		function set ropes(value:Array):void
		function get ropesNames():Array
		function set ropesNames(value:Array):void
		function get ropesBodies():Array
		function set ropesBodies(value:Array):void
		function get bezierPath():Path
		function set bezierPath(value:Path):void
		function get particlesList():Array
		function set particlesList(value:Array):void
		function get nextState():Class
		function set nextState(value:Class):void
		function get images():PFStorageImages
		function get currentLevel():PFLevel
		function get enabledAnimations():Array
		function set enabledAnimations(value:Array):void
		function get changeAnimationStateSemaphore():PFCommonSemaphore
		function set changeAnimationStateSemaphore(value:PFCommonSemaphore):void
	
	}

}